package srv;

import java.util.ArrayList;
import java.util.List;

import beans.ItemOrdenCompraBean;
import beans.OficinaVentaBean;
import beans.OrdenCompraBean;
import beans.ProveedorBean;
import beans.RodamientoBean;
import dao.HibernateOrdenCompraBeanDAO;
import entities.ItemOrdenCompraEntity;
import entities.ListaPreciosEntity;
import entities.OficinaVentaEntity;
import entities.OrdenCompraEntity;
import entities.ProveedorEntity;
import entities.RodamientoEntity;

public class OrdenCompraSRV 
{
	private static HibernateOrdenCompraBeanDAO dao;
	private static OrdenCompraSRV instancia;
	
	static 
	{
		dao = HibernateOrdenCompraBeanDAO.getInstancia();
	}
	
	public static OrdenCompraSRV getInstancia()
	{
		if (instancia == null)
		{
			instancia = new OrdenCompraSRV();
		}
		return instancia;
	}
	
	public OrdenCompraEntity pasadoDesdeBean( OrdenCompraBean ordenCompraBean )
	{
		OrdenCompraEntity ordenCompra = new OrdenCompraEntity();
		ordenCompra.setNumero( ordenCompraBean.getNumero());
		
		List<ItemOrdenCompraEntity> items = new ArrayList<ItemOrdenCompraEntity>();
		for( ItemOrdenCompraBean itemBean: ordenCompraBean.getItems())
		{
			ItemOrdenCompraEntity item = new ItemOrdenCompraEntity();
			item.setCantidad( itemBean.getCantidad());
			
			item.setPrecio( itemBean.getPrecio());
			
			ProveedorEntity proveedor = ProveedorSRV.getInstancia().pasadoDesdeBean( itemBean.getProveedor());
			item.setProveedor(proveedor);
			
			
			RodamientoEntity rodamiento = RodamientoSRV.getInstancia().pasadoDesdeBean(itemBean.getRodamiento());
			item.setRodamiento(rodamiento);
			
			items.add( item );
		}
		
		ProveedorEntity proveedor = ProveedorSRV.getInstancia().pasadoDesdeBean( ordenCompraBean.getProveedor());
		ordenCompra.setProveedor(proveedor);
		
		OficinaVentaEntity sucursal = OficinaVentaSRV.getInstancia().pasadoDesdeBean( ordenCompraBean.getSucursal());
		ordenCompra.setSucursal(sucursal);
		
		return ordenCompra;
	}
	
	public OrdenCompraBean pasadoDesdeEntity( OrdenCompraEntity ordenCompra )
	{
		OrdenCompraBean ordenCompraBean = new OrdenCompraBean();
		ordenCompraBean.setNumero( ordenCompra.getNumero());
		
		List<ItemOrdenCompraBean> items = new ArrayList<ItemOrdenCompraBean>();
		for( ItemOrdenCompraEntity itemEntity: ordenCompra.getItems())
		{
			ItemOrdenCompraBean item = new ItemOrdenCompraBean();
			item.setCantidad( itemEntity.getCantidad());
			
			item.setPrecio( itemEntity.getPrecio());
			
			ProveedorBean proveedor = ProveedorSRV.getInstancia().pasadoDesdeEntity( itemEntity.getProveedor());
			item.setProveedor(proveedor);
			
			
			RodamientoBean rodamiento = RodamientoSRV.getInstancia().pasadoDesdeEntity(itemEntity.getRodamiento());
			item.setRodamiento(rodamiento);
			
			items.add( item );
		}
		
		ProveedorBean proveedor = ProveedorSRV.getInstancia().pasadoDesdeEntity( ordenCompra.getProveedor());
		ordenCompraBean.setProveedor(proveedor);
		
		OficinaVentaBean sucursal = OficinaVentaSRV.getInstancia().pasadoDesdeEntity( ordenCompra.getSucursal());
		ordenCompraBean.setSucursal(sucursal);
		
		return ordenCompraBean;
	}
	
	public int grabarOrdenCompra(OrdenCompraBean oc )
	{
		OrdenCompraEntity ordenCompra = new OrdenCompraEntity();
		int idOrdenCompra = dao.grabarOrdenCompra(ordenCompra);
		return idOrdenCompra;
	}
	
	
}
